home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / Menus.p < prev    next >
Encoding:
Text File  |  1991-10-28  |  7.5 KB  |  222 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: Menus.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-91
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT MENUS;
  11. INTERFACE
  12. USES TYPES,QUICKDRAW,EVENTS,CONTROLS,WINDOWS;
  13. CONST
  14.  
  15. { error codes }
  16. menuStarted = $0F01;
  17. menuItemNotFound = $0F02;
  18. menuNoStruct = $0F03;
  19. dupMenuID = $0F04;
  20.  
  21. { InsertPathMItems bit flags }
  22. ipmiNotExpanded = $0010;
  23. ipmiDevNumValid = $0008;
  24. ipmiOpenFolders = $0004;
  25. ipmiDeviceAtTop = $0001;
  26.  
  27. { MenuDefProc Codes }
  28. mDrawMsg = $0000;
  29. mChooseMsg = $0001;
  30. mSizeMsg = $0002;
  31. mDrawTitle = $0003;
  32. mDrawMItem = $0004;
  33. mGetMItemID = $0005;
  34.  
  35. { Reference Flags }
  36. menuRefPtr = $0000;
  37. mRefHandle = $4000;
  38. mRefResource = $8000;
  39.  
  40. { Menu Flags }
  41. menuAllowCache = $0008;
  42. menuCustom = $0010;
  43. menuXOR = $0020;
  44. menuDisabled = $0080;
  45. menuAlwaysCallMChoose = $0100;
  46.  
  47. { Item Flags }
  48. itemBold = $0001;
  49. itemItalic = $0002;
  50. itemUnderline = $0004;
  51. itemXOR = $0020;
  52. itemDivider = $0040;
  53. itemDisabled = $0080;
  54. itemOutline = $0800;
  55. itemShadow = $1000;
  56.  
  57. { Old Menu Flags }
  58. mInvis = $0004;
  59. mCustom = $0010;
  60. mXor = $0020;
  61. mSelected = $0040;
  62. mDisabled = $0080;
  63.  
  64. { MenuFlag Masks }
  65. menuCacheMask = $0008;
  66. customMenu = $0010;
  67. xorMItemHilite = $0020;
  68. xorTitleHilite = $0020;
  69. underMItem = $0040;
  70. disableItem = $0080;
  71. disableMenu = $0080;
  72. enableItem = $FF7F;
  73. enableMenu = $FF7F;
  74. noUnderMItem = $FFBF;
  75. colorMItemHilite = $FFDF;
  76. colorTitleHilite = $FFDF;
  77. colorReplace = $FFDF;
  78. standardMenu = $FFEF;
  79.  
  80. { Other misc constants }
  81. type2 = $0040;
  82. {$IFC UNDEFINED mtItemRefArrayLength }  { MenuTemplate - default number of Ref's }
  83. mtItemRefArrayLength = $0005;
  84. {$SETC mtItemRefArrayLength := 0}
  85. {$ENDC}
  86. {$IFC UNDEFINED mbtMenuRefArrayLength }  { MenuBarTemplate - default number of Ref's }
  87. mbtMenuRefArrayLength = $0005;
  88. {$SETC mbtMenuRefArrayLength := 0}
  89. {$ENDC}
  90.  
  91. TYPE
  92. MenuBarRecHndl = ^MenuBarRecPtr;
  93. MenuBarRecPtr = ^MenuBarRec;
  94. MenuBarRec = CtlRec ;
  95. MenuRecHndl = ^MenuRecPtr;
  96. MenuRecPtr = ^MenuRec;
  97. MenuRec = RECORD
  98.     menuID : Integer; { Menu's ID number }
  99.     menuWidth : Integer; { Width of menu }
  100.     menuHeight : Integer; { Height of menu }
  101.     menuProc : WordProcPtr; { Menu's definition procedure }
  102.     menuFlag : Integer; { Bit flags }
  103.     numOfItems : Integer;
  104.     titleWidth : Integer; { Width of menu's title }
  105.     titleName : Ptr;
  106.     menuCache : Handle;
  107. END;
  108. MenuItemTemplate = PACKED RECORD
  109.     version : Integer; { Version number (must be 0) }
  110.     itemID : Integer; { Menu item ID }
  111.     itemChar : Byte; { Primary keystroke character }
  112.     itemAltChar : Byte; { Alternate keystroke character }
  113.     itemCheck : Integer; { Character code for checked items }
  114.     itemFlag : Integer; { Menu item flag word }
  115.     itemTitleRef : Ref; { Reference to item title string }
  116. END;
  117. MenuTemplate = RECORD
  118.     version : Integer; { Version number (must be 0) }
  119.     menuID : Integer; { Menu ID }
  120.     menuFlag : Integer; { Menu flag word }
  121.     menuTitleRef : Ref; { Reference to menu title string }
  122.     itemRefArray : ARRAY[1..mtItemRefArrayLength] OF Ref; { mtItemRefArrayLength references to menu items  }
  123. END;
  124. MenuBarTemplate = RECORD
  125.     version : Integer; { Version number (must be 0) }
  126.     menuFlag : Integer; { MenuBar flag word }
  127.     menuRefArray : ARRAY[1..mbtMenuRefArrayLength] OF Ref; { mbtMenuRefArrayLength references to menus }
  128. END;
  129.  
  130. itemStruct = RECORD
  131.     itemFlag2: integer;
  132.     itemTitleRef: Ref;
  133.     itemIconRef: Ref;
  134. END;
  135.  
  136. ipmiResultRec = RECORD
  137.     highestID: integer;
  138.     tempHandle1,
  139.     tempHandle2: Handle;
  140. END;
  141.  
  142. PROCEDURE CalcMenuSize ( newWidth:Integer; newHeight:Integer; menuNum:Integer)  ;
  143. PROCEDURE CheckMItem ( checkedFlag:Boolean; itemNum:Integer)  ;
  144. FUNCTION CountMItems ( menuNum:Integer) : Integer ;
  145. PROCEDURE DeleteMenu ( menuNum:Integer)  ;
  146. PROCEDURE DeleteMItem ( itemNum:Integer)  ;
  147. PROCEDURE DisableMItem ( itemNum:Integer)  ;
  148. PROCEDURE DisposeMenu ( menuHandle:MenuRecHndl)  ;
  149. PROCEDURE DrawMenuBar   ;
  150. PROCEDURE EnableMItem ( itemNum:Integer)  ;
  151. FUNCTION FixMenuBar  : Integer ;
  152. PROCEDURE FlashMenuBar   ;
  153. FUNCTION GetBarColors  : Longint ;
  154. FUNCTION GetMenuBar  : MenuBarRecHndl ;
  155. FUNCTION GetMenuFlag ( menuNum:Integer) : Integer ;
  156. FUNCTION GetMenuMgrPort  : GrafPortPtr ;
  157. FUNCTION GetMenuTitle ( menuNum:Integer) : Ptr ;
  158. FUNCTION GetMHandle ( menuNum:Integer) : MenuRecHndl ;
  159. FUNCTION GetMItem ( itemNum:Integer) : StringPtr ;
  160. FUNCTION GetMItemFlag ( itemNum:Integer) : Integer ;
  161. FUNCTION GetMItemMark ( itemNum:Integer) : Integer ;
  162. FUNCTION GetMItemStyle ( itemNum:Integer) : TextStyle ;
  163. FUNCTION GetMTitleStart  : Integer ;
  164. FUNCTION GetMTitleWidth ( menuNum:Integer) : Integer ;
  165. FUNCTION GetPopUpDefProc  : Ptr ;
  166. FUNCTION GetSysBar  : MenuBarRecHndl ;
  167. PROCEDURE HideMenuBar   ;
  168. PROCEDURE HiliteMenu ( hiliteFlag:Boolean; menuNum:Integer)  ;
  169. PROCEDURE InitPalette   ;
  170. PROCEDURE InsertMenu ( addMenuHandle:MenuRecHndl; insertAfter:Integer)  ;
  171. PROCEDURE InsertMItem ( addItemPtr:Ptr; insertAfter:Integer; menuNum:Integer)  ;
  172. PROCEDURE InsertMItem2 ( refDesc:RefDescriptor; menuItemTRef:Ref; insertAfter:Integer; menuNumber:Integer)  ;
  173. PROCEDURE MenuBootInit   ;
  174. FUNCTION MenuGlobal ( menuGlobalMask:Integer) : Integer ;
  175. PROCEDURE MenuKey ( taskRecPtr:WmTaskRec; barHandle:MenuBarRecHndl)  ;
  176. PROCEDURE MenuNewRes   ;
  177. PROCEDURE MenuRefresh ( redrawRoutinePtr:VoidProcPtr)  ;
  178. PROCEDURE MenuReset   ;
  179. PROCEDURE MenuSelect ( taskRecPtr:WmTaskRec; barHandle:MenuBarRecHndl)  ;
  180. PROCEDURE MenuShutDown   ;
  181. PROCEDURE MenuStartUp ( userID:Integer; dPageAddr:Integer)  ;
  182. FUNCTION MenuStatus  : Boolean ;
  183. FUNCTION MenuVersion  : Integer ;
  184. FUNCTION NewMenu ( menuStringPtr:Ptr) : MenuRecHndl ;
  185. FUNCTION NewMenu2 ( refDesc:RefDescriptor; menuTRef:Ref) : MenuRecHndl ;
  186. FUNCTION NewMenuBar ( theWindowPtr:WindowPtr) : MenuBarRecHndl ;
  187. FUNCTION NewMenuBar2 ( refDesc:RefDescriptor; menuBarTRef:Ref; windowPortPtr:WindowPtr) : MenuBarRecHndl ;
  188. FUNCTION PopUpMenuSelect ( selection:Integer; currentLeft:Integer; currentTop:Integer; flag:Integer; menuHandle:MenuRecHndl) : Integer ;
  189. PROCEDURE SetBarColors ( newBarColor:Integer; newInvertColor:Integer; newOutColor:Integer)  ;
  190. PROCEDURE SetMenuBar ( barHandle:MenuBarRecHndl)  ;
  191. PROCEDURE SetMenuFlag ( newValue:Integer; menuNum:Integer)  ;
  192. PROCEDURE SetMenuID ( newMenuNum:Integer; curMenuNum:Integer)  ;
  193. PROCEDURE SetMenuTitle ( newStr:Str255; menuNum:Integer)  ;
  194. PROCEDURE SetMenuTitle2 ( refDesc:RefDescriptor; titleRef:Ref; menuNum:Integer)  ;
  195. PROCEDURE SetMItem ( newItemLine:Str255; itemNum:Integer)  ;
  196. PROCEDURE SetMItem2 ( refDesc:RefDescriptor; menuItemTRef:Ref; menuItemID:Integer)  ;
  197. PROCEDURE SetMItemBlink ( count:Integer)  ;
  198. PROCEDURE SetMItemFlag ( newValue:Integer; itemNum:Integer)  ;
  199. PROCEDURE SetMItemID ( newItemNum:Integer; curItemNum:Integer)  ;
  200. PROCEDURE SetMItemMark ( mark:Integer; itemNum:Integer)  ;
  201. PROCEDURE SetMItemName ( str:Str255; itemNum:Integer)  ;
  202. PROCEDURE SetMItemName2 ( refDesc:RefDescriptor; titleRef:Ref; menuItemID:Integer)  ;
  203. PROCEDURE SetMItemStyle ( theTextStyle:TextStyle; itemNum:Integer)  ;
  204. PROCEDURE SetMTitleStart ( xStart:Integer)  ;
  205. PROCEDURE SetMTitleWidth ( newWidth:Integer; menuNum:Integer)  ;
  206. PROCEDURE SetSysBar ( barHandle:MenuBarRecHndl);
  207. PROCEDURE ShowMenuBar;
  208.  
  209. PROCEDURE SetMItemIcon(iconDesc:integer; iconRef:Ref; itemID:integer);
  210. FUNCTION GetMItemIcon(itemID:integer): Ref;
  211. PROCEDURE SetMItemStruct(desc:integer; struct:Ref; itemID:integer);
  212. FUNCTION GetMItemStruct(itemID:integer): Ref;
  213. PROCEDURE RemoveMItemStruct(itemID:integer);
  214. FUNCTION GetMItemFlag2(itemID:integer): integer;
  215. PROCEDURE SetMItemFlag2(newValue, itemID:integer);
  216. FUNCTION GetMItemBlink: INTEGER;
  217. PROCEDURE InsertPathMItems(flags:integer; path:String255Ptr; devNum, menuID,
  218.                            afterID,startID:integer; var Results:ipmiResultRec);
  219.  
  220. IMPLEMENTATION
  221. END.
  222.